﻿/**
 * author lcw
 * var util = Util.createNew();
 * console.log(util.version);
 * util.strToInt('1');
 */
var Util = {
		
	version : '1.0.0',
	
	createNew:function(){
		var util = {};
		
		/**
		 * 字符串转换成整数
		 * @param str 要转换的字符串
		 */
		util.strToInt = function(str){
			if(isNaN(str) == false)
				return parseInt(Str);
			return null;
		};
		
		/**
		 * 日期转换成字符串
		 * @param date 输入的日期
		 */
		util.dateToStr = function(date){
			
		};
		
		/**
		 * 获取当前时间
		 */
		util.getDate = function(){
			return new Date();
		};
		
		/**
		 * 控制台打印输出
		 * @param info 输出信息
		 */
		util.debug = function(info){
			try{
				if(console != undefined && console != null && console.info){
					console.info(info);
				}
			}catch (e) {
				
			}
		};
		
		/**
		 * 获取页面链接参数
		 * @param name 参数的key值
		 */
		util.getUrlParam = function(name){
			var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);
			if (!results) { 
				return 0; 
			}
			return results[1] || 0;
		};
		
		/**
		 * 获取页面链接参数
		 * @param name 参数的key值
		 */
		util.getUrlParam2 = function(name){
			var url = location.href;   
			var paraString = url.substring(url.indexOf("?") + 1, url.length).split("&amp;");     
			var paraObj = {};  
			for (var i = 0; j = paraString[i]; i++) {   
				paraObj[j.substring(0, j.indexOf("=")).toLowerCase()] 
				= j.substring(j.indexOf("=") + 1, j.length);      
			}      
			var returnValue = paraObj[paras.toLowerCase()];     
			if (typeof (returnValue) == "undefined") {     
				return "";    
			} else {    
				return returnValue;  
			}  
		};
		
		/**
		 * 对象深度克隆
		 * @param obj 克隆对象
		 */
		util.clone = function(obj){  
			    var o, obj;  
			    if (obj.constructor == Object){  
			        o = new obj.constructor();   
			    }else{  
			        o = new obj.constructor(obj.valueOf());   
			    }  
			    for(var key in obj){  
			        if ( o[key] != obj[key] ){   
			            if ( typeof(obj[key]) == 'object' ){   
			                o[key] = this.clone(obj[key]);  
			            }else{  
			                o[key] = obj[key];  
			            }  
			        }  
			    }  
			    o.toString = obj.toString;  
			    o.valueOf = obj.valueOf;  
			    return o;  
		};
		
		/**
		 * 获取时间戳
		 */
		util.getTimeStamp = function(){
			return Date.parse(new Date()); 
		};
		
		/**
		 * 删除左右两端的空格
		 * @param str 操作的字符串
		 */
		util.trim = function(str){ 
		    return str.replace(/(^\s*)|(\s*$)/g, "");
		}

		/**
		 * 删除左边的空格
		 * @param str 操作的字符串
		 */
		util.ltrim = function(str){ 
		    return str.replace(/(^\s*)/g,"");
		}

		/**
		 * 删除右边的空格
		 * @param str 操作的字符串
		 */
		util.rtrim = function(str){ 
		    return str.replace(/(\s*$)/g,"");
		}

		/**
		 * 在光标处插入字符
		 * @param elementId DOM元素ID
		 * @param insertValue 插入的值
		 */
		util.insertText = function(elementId,insertValue){
			var obj = document.getElementById(elementId);
			var str = insertValue;
			if (document.selection) {
				obj.focus();
				var sel = document.selection.createRange();

				sel.text = str;

			} else if (typeof obj.selectionStart === 'number' && typeof obj.selectionEnd === 'number') {
				var startPos = obj.selectionStart;
				var endPos = obj.selectionEnd;
				var tmpStr = obj.value;
				obj.value = tmpStr.substring(0, startPos) + str + tmpStr.substring(endPos, tmpStr.length);
			} else {
				obj.value += str;
			}
		};

		/**
		 * 在光标处插入字符，并定位在此处
		 * @param elementId DOM元素ID
		 * @param insertValue 插入的值
		 */
		util.insertText2 = function(elementId,insertValue){
			//IE support
			if (document.selection)
			{
				myField.focus();
				sel            = document.selection.createRange();
				sel.text    = myValue;
				sel.select();
			}
			//MOZILLA/NETSCAPE support
			else if (myField.selectionStart || myField.selectionStart == '0')
			{
				var startPos    = myField.selectionStart;
				var endPos        = myField.selectionEnd;
				// save scrollTop before insert
				var restoreTop    = myField.scrollTop;
				myField.value    = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length);
				if (restoreTop > 0)
				{
					// restore previous scrollTop
					myField.scrollTop = restoreTop;
				}
				myField.focus();
				myField.selectionStart    = startPos + myValue.length;
				myField.selectionEnd    = startPos + myValue.length;
			} else {
				myField.value += myValue;
				myField.focus();
			}
		};
		
		return util;
	}
};